#ifndef PARAFLUIDCOLOR_H
#define PARAFLUIDCOLOR_H

#include <QDataStream>

namespace ParaFluid
{
	
	/**
	* Color
	*/
	class Color
	{
		
	public:
		
		/**
		* Destructor
		*/
		virtual ~Color();
		
		/**
		* Default Constructor
		*/
		Color();
		
		/**
		* Constructor with Red, Green and Blue values
		*/
		Color(float r, float g, float b);
		
		/**
		* Copy Constructor
		*/
		Color(const Color & other);
		
		/**
		* Assignment Operator
		*/
		Color & operator= (const Color & rhs);
		
		/**
		* Comparison Operator
		*/
		bool operator== (const Color & rhs) const;
		
		/**
		* Red
		*/
		float red;
		
		/**
		* Green
		*/
		float green;
		
		/**
		* Blue
		*/
		float blue;
		
		static const Color RED;
		
		static const Color GREEN;
		
		static const Color BLUE;
		
		static const Color WHITE;
		
		static const Color BLACK;
		
	};
	
}

QDataStream & operator<< (QDataStream & stream, const ParaFluid::Color & color);

QDataStream & operator>> (QDataStream & stream, ParaFluid::Color & color);

#endif
